For your editing convenience, this file is best viewed using an editor that automatically wraps long lines, in a fixed point font at 80 columns, with tabs every 4 spaces.
There are two significant problems that crop up when objects can appear in an indefinite number of places:
1. How does one guarantee that changes propagate properly?
2. How does memory management work?
The solution provided by the MiscDependency class is to have each object keep track of the objects that are using it. That way an object can notify all its users when it changes, and it can free itself when it is no longer need.
The MiscDependency protocol is a public version of the IKDependency protocol from IconKit. If IconKit is installed on your system, you may wish to fiddle with the #ifdef's below so that the IKDependency and MiscDependency protocols are recognized as identical.